
package com.dingding.service.user.core.dao;

import com.dingding.facade.user.dto.evaluate.GetDriverInfoDTO;
import com.dingding.facade.user.dto.userinfo.ResUserInfoByCancelOrderDTO;

/**
 * @ClassName: IUserInfoDao
 * @Description:用户信息Dao
 * @author zhouxuan
 * @date 2016年4月12日 下午3:56:02
*/

public interface IUserInfoDao {
	
	/**
	 * @Title: getUserCouponNumber
	 * @Description:根据用户id获取优惠券数目
	 * @param @param userId
	 * @param @return 优惠券数目
	 * @author zhouxuan
	 */
	
	public int getUserCouponNumber(String userId);
	
	/**
	 * @Title: setUserCouponNumber
	 * @Description: 设置用户优惠券数量
	 * @param @param userId 用户id
	 * @param @param couponNumber 优惠券数量
	 * @author zhouxuan
	 */
	
	public boolean setUserCouponNumber(String userId,int couponNumber);
	
	/**
	 * @Title: setUserCouponNumber
	 * @Description: 增加一张用户优惠券
	 * @param @param userId 用户id
	 * @author zhouxuan
	 */
	
	public boolean addUserCoupon(String userId);
	
	/**
	 * 
	 * 订单完成后，乘客评价页面需要显示车主信息及部分订单信息，当前接口由此产生
	 * 
	 * 由于当前接口所需要的车主信息需要依赖顶大信息所以获取订单信息也在此接口完成
	 * 
	 * @Title: getDriverInfo_And_OrderInfo 
	 * @param orderId 订单ID
	 * @author CHEHUANBO
	 * @return GetDriverInfoDTO  获取到的车主信息及相关订单信息
	 * 
	 */
	public GetDriverInfoDTO getDriverInfo_And_OrderInfo(String orderId,Integer registrationType);
	
	/**
	 * 
	 * @Title: getUserInfoByCancelOrder 
	 * @Description: 获取取消订单的用户信息
	 * @param userId 用户Id
	 * @author YHQ 
	 * @return ResUserInfoByCancelOrderDTO    返回类型
	 * @since V2.5.6
	 * 
	 */
	public ResUserInfoByCancelOrderDTO getUserInfoByCancelOrder(String userId);
	
}
